package utils;

import org.w3c.dom.Document;
import org.w3c.dom.Element;

import dominio.Cliente;
import dominio.Proveedor;

public class XmlUtils {

	public static Element getElement(Document xml, String tagname) {
		return (Element) xml.getElementsByTagName(tagname).item(0);
	}

	public static Element getElement(Element parent, String tagname) {
		return (Element) parent.getElementsByTagName(tagname).item(0);
	}

	public static Cliente parseCliente(Element parent) throws Exception {
		// Cliente
		Element elementCliente = getElement(parent, "Cliente");
		if (elementCliente != null) {
			// Cuil
			Element elementCuil = getElement(elementCliente, "Cuil");
			// Razon Social
			Element elementRazonSocial = getElement(elementCliente, "RazonSocial");
			if (elementCuil != null && elementRazonSocial != null) {
				Cliente cliente = new Cliente();
				cliente.setCuil(elementCuil.getTextContent());
				cliente.setRazonSocial(elementRazonSocial.getTextContent());
				return cliente;
			}
		}
		throw new Exception("Formato incorrecto del archivo XML.");
	}

	public static Proveedor parseProveedor(Element parent) throws Exception {
		// Proveedor
		Element elementProveedor = getElement(parent, "Proveedor");
		if (elementProveedor != null) {
			// Cuil
			Element elementCuil = getElement(elementProveedor, "Cuil");
			// Razon Social
			Element elementRazonSocial = getElement(elementProveedor, "RazonSocial");
			if (elementCuil != null && elementRazonSocial != null) {
				Proveedor proveedor = new Proveedor();
				proveedor.setCuil(elementCuil.getTextContent());
				proveedor.setRazonSocial(elementRazonSocial.getTextContent());
				return proveedor;
			}
		}
		throw new Exception("Formato incorrecto del archivo XML.");
	}
}